package com.prime.tutorial.moviestore.service.techsupport;

import com.prime.tutorial.moviestore.domain.Device;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * Interface for the implementation of techSupport functionality.
 * @author vasylja
 */
public interface TechSupportService {
    /**
     * Removes device
     * @param device device to remove
     */
    @Transactional
    public void removeDevice(Device device);

    /**
     * Changes status of the device from STATE_APPROVED_INSTALLATION to STATE_ENABLED
     * @param device
     */
    @Transactional
    public void installDevice(Device device);

    /**
     * Returns list of the devices with STATE_APPROVED_INSTALLATION
     * @return list of devices
     */
    public List<Device> findDevicesToInstall();

    /**
     * Returns list of the devices with STATE_APPROVED_REMOVAL
     * @return list of devices
     */
    public List<Device> findDevicesToRemove();
}
